package com.elephant.core.mianshi;

import java.util.HashMap;

/**
 * 我们知道Java有8种基本类型：数值型（byte、short、int、long、float、double）、字符型（char）、布尔型（boolean），
 * 对于这8种基本类型的比较，变量存储的就是值，所以比较的就是'值'本身。如下，值相等就是true，不等就是false。
 *
 * 对于非基本类型，也就是常说的引用数据类型：类、接口、数组，由于变量种存储的是内存中的地址，并不是'值'本身，
 * 所以真正比较的是该变量存储的地址，可想而知，如果声明的时候是2个对象，地址固然不同。
 *
 * 8位：Byte（字节型）
 * 16位：short（短整型）、char（字符型）
 * 32位：int（整型）、float（单精度型/浮点型）
 * 64位：long（长整型）、double（双精度型）
 * 最后一个：boolean(布尔类型)
 */
public class Key {

    private byte[] bytes;

    public Key(byte[] bytes){
        this.bytes = bytes;
    }

    @Override
    public int hashCode() {
        return 1;
    }

    @Override
    public boolean equals(Object obj) {
        return true;
    }

    public static void main(String[] args) {
        HashMap<Key, String> map = new HashMap<>(2);
        map.put(new Key(new byte[]{0x01,0x02}), "ABC");
        System.out.println(map.get(new Key(new byte[]{0x01,0x02})));
    }


}
